#ifndef CPPN_VISUALIZE_HH
#define CPPN_VISUALIZE_HH

#include "SDL2/SDL.h"
#include "cppn.hh"

namespace cppn {

    class HypercubeWindow {
        CPPN* cppn;
        SDL_Window* window;
        SDL_Renderer* renderer;

        float x, y;
        int width, height;

    public:
        HypercubeWindow(int width, int height, CPPN* cppn);
        ~HypercubeWindow();

        void set_source (float x, float y);
        bool scroll (float dx, float dy);

        void show();
        void render();
        void wait (long ms);
    };

}

#endif
